package cn.edu.ctbu.web.service.impl;

import cn.edu.ctbu.web.dao.TeacherCourse;
import cn.edu.ctbu.web.dao.TeacherGrade;
import cn.edu.ctbu.web.domain.Teacher;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface ITeacherService {
    // 使用教师编号+密码进行登录
    public List<Teacher> findByNoAndPassword(String no, String password);
    // 使用教师编号来查询教师个人信息
    public Teacher findByNo(String no);
    // 使用教师编号查询授课课程信息
    public Page<TeacherCourse> findCourseByNoTeacher(@Param("no") String no, Pageable pageable);
    // 使用教师编号查询授课课程学生信息
    public Page<TeacherGrade> findGradeByNoTeacher(@Param("no") String no, Pageable pageable);
    // 获取所有教师的信息
    public Page<Teacher> findAllTeacher(Pageable pageable);
    // 查找所有教师的信息——用于反强制进入主页
    public List<Teacher> findAllTeacher();
    // 根据课程编号查询该课程所有学生的成绩
    public Page<TeacherGrade> searchGradeTeacher(@Param("cno") String cno, Pageable pageable);
    // 根据课程编号和学生学号删除学生成绩信息
    public void deleteGradeTeacher(@Param("cno") String cno, @Param("sno") String sno);
    // 根据课程编号、学生编号和学生成绩，新增成绩表的信息
    public void insertGradeTeacher(@Param("cno") String cno, @Param("sno") String sno, @Param("grade") int grade);
    // 根据Tno寻找授课课程
    public List<TeacherCourse> findCourseByTno(@Param("tno") String tno);
    // 根据课程编号、学生学号和课程成绩修改学生成绩信息
    public void updateGradeTeacher(@Param("cno") String cno, @Param("sno") String sno, @Param("grade") int grade);
}
